Only commentary changes, no functionality changed.
authorEli Zaretskii <eliz@gnu.org>
Sat, 11 Jun 2011 10:29:05 +0000 (13:29 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 11 Jun 2011 10:29:05 +0000 (13:29 +0300)
 src/xdisp.c (next_element_from_buffer): Improve commentary for when
 the iterator is before prev_stop.

src/ChangeLog
src/xdisp.c

index 3be94ba0631b1384951106d7a3e7d1485df696f8..592ee8f89694a31f562a0b36d1fe67d238bf4a16 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-11  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (next_element_from_buffer): Improve commentary for when
+       the iterator is before prev_stop.
+
 2011-06-10  Eli Zaretskii  <eliz@gnu.org>
 
        * xdisp.c (Fcurrent_bidi_paragraph_direction): Initialize
index 8486808bb40d403b8f087fa52d44a4d7616976ab..8be85d16fb4cc8f164227fe7707d3dedfea44a06 100644 (file)
@@ -6822,13 +6822,20 @@ next_element_from_buffer (struct it *it)
        }
     }
   else if (it->bidi_p
+          /* If we are before prev_stop, we may have overstepped on
+             our way backwards a stop_pos, and if so, we need to
+             handle that stop_pos.  */
+          && IT_CHARPOS (*it) < it->prev_stop
           /* We can sometimes back up for reasons that have nothing
              to do with bidi reordering.  E.g., compositions.  The
              code below is only needed when we are above the base
              embedding level, so test for that explicitly.  */
-          && !BIDI_AT_BASE_LEVEL (it->bidi_it)
-          && IT_CHARPOS (*it) < it->prev_stop)
+          && !BIDI_AT_BASE_LEVEL (it->bidi_it))
     {
+      /* If we lost track of base_level_stop, we have no better place
+        for handle_stop_backwards to start from than BEGV.  This
+        happens, e.g., when we were reseated to the previous
+        screenful of text by vertical-motion.  */
       if (it->base_level_stop <= 0
          || IT_CHARPOS (*it) < it->base_level_stop)
        it->base_level_stop = BEGV;